<?php

class Service_Startup
{
	static function loadConfig()
	{
		// загружаем application.ini
		global $CONFIG;
		
		$CONFIG = parse_ini_file("config/application.ini", true);
	}
	
	static function connectDatabase()
	{
		DB::connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, 'UTF-8');
	}
	
	static function startSession()
	{
		my_start_session();
		// extravert
		if (isset($_SESSION['current_user']) && !isset($_POST[session_name()]) )
		{
			// если сессия не совпадает с тем под которой заходили последний раз (коллизия)
			if(!isset($_COOKIE['cuid']) || $_SESSION['current_user']['id'] != $_COOKIE['cuid'])
			{
				session_destroy();
				unset($_SESSION);
				
				session_id( md5(rand(0, 999999).$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'].microtime(false)) );
				my_start_session();
			}
		}
	}
	
	static function parseUrl()
	{
		setSelfUrl();
		setCurrentUrl();
		list($handler, $params) = urlMapping();
		list($controllerClass, $event) = explode('.', $handler);
		return array($controllerClass, $event, $params);
	}
	
	static function sendHeaders()
	{
		// запретим кэширование в браузере - Опера глючит из-за него?
		header( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' );
		header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
		header( 'Cache-Control: no-store, no-cache, must-revalidate' );
		header( 'Cache-Control: post-check=0, pre-check=0', false );
		header( 'Pragma: no-cache' );
		header( 'Content-type: text/html; charset=windows-1251');
	}
}